파이썬 - pandas loc vs iloc
목차
본 글은 파이썬 내 pandas 라이브러리를 활용하여 DataFrame을 다룰 때 필요한 .loc() 과 .iloc() 각각의 특징과 차이점을 설명하고자 작성되었습니다.
우선, 설명을 위해서 seaborn을 활용하여 예시의 데이터(iris)를 가져오도록 하겠습니다.
>>> import seaborn as sns
>>> iris = sns.load_dataset('iris')
>>> iris.head()
1. loc #
loc은 레이블(Label)을 기반으로 데이터를 선택하는 메서드입니다. 행과 열의 이름(Label)을 사용하여 데이터에 접근합니다. 즉, 행과 열의 이름을 명시적으로 지정하여 데이터를 선택합니다.
# 열 이름이 'species'인 데이터 중 'virginica'를 가진 값 선택
>>> iris.loc[iris['species'] == 'virginica']
2. iloc #
iloc은 정수(Integer) 기반의 인덱스를 사용하여 데이터를 선택하는 메서드입니다. 행과 열의 정수 위치(인덱스)를 이용하여 데이터에 접근합니다. 즉, 데이터의 위치를 정수로 명시하여 선택합니다.
# 첫 번째 행과 두 번째 열에 있는 데이터 선택
>>> iris.iloc[0, 1]
3.5
3. loc과 iloc의 차이점 #
-
인덱스의 타입:
loc은 레이블(Label)을 사용하므로, 행과 열의 이름이 문자열이나 다른 데이터 타입일 수 있습니다.
iloc은 정수(Integer)를 사용하므로, 행과 열의 인덱스는 정수여야 합니다.
-
사용법:
loc은 명시적으로 레이블을 사용하여 데이터를 선택하는 데에 중점을 둡니다.
iloc은 정수 위치(인덱스)를 사용하여 데이터를 선택하는 데에 중점을 둡니다.
-
예시:
loc 예시: df.loc[‘A’, ‘column_name’]
iloc 예시: df.iloc[0, 1]
언제 어떤 메서드를 사용할지는 데이터프레임의 구조 및 사용자의 목적에 따라 다릅니다.
loc은 레이블이 명확하게 정의되어 있을 때 유용하며, iloc은 정수 기반의 인덱스가 사용되는 경우에 유용합니다.